﻿#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;

namespace Lightbug.Utilities
{
    [CustomPropertyDrawer(typeof(BreakVector2Attribute))]
    public class BreakVector2AttributeEditor : PropertyDrawer
    {
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            EditorGUI.BeginProperty(position, label, property);

            Rect fieldRect = position;
            fieldRect.height = EditorGUIUtility.singleLineHeight;

            var at = attribute as BreakVector2Attribute;

            EditorGUI.BeginChangeCheck();
            
            float x = EditorGUI.FloatField(fieldRect, at.XLabel, property.vector2Value.x);

            fieldRect.y += fieldRect.height + 2f;
            float y = EditorGUI.FloatField(fieldRect, at.YLabel, property.vector2Value.y);

            property.vector2Value = new Vector2(x, y);

            EditorGUI.EndProperty();
        }

        public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
        {
            return 2f * (EditorGUIUtility.singleLineHeight + 2f);
        }
    }
}

#endif
